package com.lsy.poi.cell.validator;

import org.apache.commons.lang3.StringUtils;
import org.apache.poi.xssf.usermodel.XSSFCell;

import com.lsy.poi.exception.ParseException;
import com.lsy.poi.exception.cell.BlankException;

/**
 * 验证：当前 cell 是否为 blank cell
 * 
 * 注：PXP 的 解析流程 中，会 强制将
 * 1、null 行 =转换=> blank 行
 * 2、null 单元格 =转换=> blank 单元格
 *
 */
public class NotBlankValidator extends CellValidator {

	@Override
	public void doValidate(Object cellValue, XSSFCell cell) throws ParseException {
		boolean result;
		
		//注：如果 cellType==3 (blank 类型)，则 cellValue 必然为 ""
		
		if(cellValue instanceof String) {
			String cellValueStr = String.valueOf(cellValue);
			
			if(StringUtils.isBlank(cellValueStr)) { //如果 值为 blank
				result = false;
			}else {
				result = true;
			}
			
		}else {
			result = true;
		}
		
		
//		result = (null==cellValue) ? false:true;
		
		if(!result)
			throw new BlankException(cell);
	}
	
}
